<?php
namespace restphp\aop;

class AopParam {
    private $_processParam;
    private $_callClass;
    private $_callMethod;
    private $_callMethodArgs;

    private $_result;

    /**
     * @return mixed
     */
    public function getProcessParam()
    {
        return $this->_processParam;
    }

    /**
     * @param mixed $processParam
     */
    public function setProcessParam($processParam)
    {
        $this->_processParam = $processParam;
    }

    /**
     * @return mixed
     */
    public function getCallClass()
    {
        return $this->_callClass;
    }

    /**
     * @param mixed $callClass
     */
    public function setCallClass($callClass)
    {
        $this->_callClass = $callClass;
    }

    /**
     * @return mixed
     */
    public function getCallMethod()
    {
        return $this->_callMethod;
    }

    /**
     * @param mixed $callMethod
     */
    public function setCallMethod($callMethod)
    {
        $this->_callMethod = $callMethod;
    }

    /**
     * @return mixed
     */
    public function getCallMethodArgs()
    {
        return $this->_callMethodArgs;
    }

    /**
     * @param mixed $callMethodArgs
     */
    public function setCallMethodArgs($callMethodArgs)
    {
        $this->_callMethodArgs = $callMethodArgs;
    }

    /**
     * @return mixed
     */
    public function getResult()
    {
        return $this->_result;
    }

    /**
     * @param mixed $result
     */
    public function setResult($result)
    {
        $this->_result = $result;
    }

    public static function instance($processParam = array(), $class = '', $method = '', $methodArgs = array(), $result = null)
    {
        $instance = new self();
        $instance->setProcessParam($processParam);
        $instance->setCallClass($class);
        $instance->setCallMethod($method);
        $instance->setCallMethodArgs($methodArgs);
        $instance->setResult($result);
        return $instance;
    }
}